System and method for facilitating remote downloading

ABSTRACT

A method for facilitating remote downloading, in accordance with particular embodiments, includes receiving, at a proxy server maintained by a wireless service provider, a remote download request. The remote download request is relayed to the proxy server via at least one component of a wireless service provider&#39;s network. The remote download request includes an address associated with at least one file hosted by a remote server. The method also includes downloading the at least one file from the remote server to the proxy server. Upon detecting a presence of the endpoint, the method includes transferring the at least one file from the proxy server to the endpoint via a femto base station associated with the endpoint.

TECHNICAL FIELD

The present invention relates generally to downloading, and more particularly to methods and systems for facilitating remote downloading.

BACKGROUND

Mobile endpoints (e.g., smartphones) are generating, downloading, and storing an increasing amount of data. This growth in data consumption is outpacing advances in wireless technologies. Moreover, it is not practical, from a cost or performance perspective, to provide the mobile endpoints with large amounts of on-board storage.

One technique for reducing the local storage requirements of mobile endpoints is to move file downloads off the mobile endpoint and onto a user's home server (e.g., a Samba Server). This technique often requires the user to first setup a server with a network file system (NFS) (e.g., NFS, Microsoft Server Message Block, or Samba) at home. Then, in order to allow the user to remotely access the home server, the user may have to enable remote access to the home server from networks outside of their home. Once configured, the user is then able to save files to the home server over the NSF. In order to save files on the home server, the mobile endpoint downloads a file that it then uploads to the home server over the NFS. While this may reduce the storage requirements of the mobile endpoint, its implementation is inefficient because it requires the data to be moved over both a downlink and uplink in the wireless network. Moreover, the mobile endpoint has to maintain a wireless connection to both download and upload the file. If the connection is dropped during either portion of the download process, the operation fails.

One technique for reducing the load on the wireless network is based on a remote desktop platform. This technique often requires the user to setup and enable the remote desktop function at their home computer. Once enabled the user may remotely operate their computer from their mobile endpoint. While this allows the file to be downloaded using the user's home network connection, trying to manage and interface with a home computer using a mobile endpoint can be unwieldy. For example, the response time of the interactions on the remote desktop is slow because of the substantial amount of messages exchanged between the home computer and the mobile endpoint. As another example, the small screen of a mobile endpoint makes it difficult to operate the higher resolution of the home computer.

SUMMARY

The teachings of the present disclosure relate to methods and systems for facilitating remote downloading that include receiving, at a proxy server maintained by a wireless service provider, a remote download request. The remote download request is relayed to the proxy server via at least one component of a wireless service provider's network. The remote download request includes an address associated with at least one file hosted by a remote server. The methods also include downloading the at least one file from the remote server to the proxy server. Upon detecting a presence of the endpoint, the methods include transferring the at least one file from the proxy server to the endpoint via a femto base station associated with the endpoint.

Technical advantages of particular embodiments include allowing a user to use his endpoint to request a WSP's proxy to download a file. Accordingly, by not immediately downloading the file to the endpoint over the wireless service provider's wireless network, the traffic load of a wireless service provider's wireless network is reduced. Additionally, the user is not required to maintain a data connection as the file is downloaded.

Other technical advantages will be readily apparent to one of ordinary skill in the art from the following figures, descriptions, and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages.

BRIEF DESCRIPTION OF THE FIGURES

For a more complete understanding of particular embodiments and their advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:

FIG. 1 illustrates a communication system comprising various communication networks, in accordance with a particular embodiment;

FIG. 2 illustrates a network comprising a more detailed view of an endpoint and a proxy server, in accordance with a particular embodiment; and

FIG. 3 illustrates a method for facilitating remote downloading, in accordance with a particular embodiment.

DETAILED DESCRIPTION

FIG. 1 illustrates a communication system comprising various communication networks, in accordance with a particular embodiment. Communication system 100 may be comprised of multiple networks 110. Each network 110 may be any of a variety of communication networks designed to facilitate one or more different services either independently or in conjunction with other networks. For example, networks 110 may facilitate internet access, wireless access (e.g., a WiMAX service) online gaming, data downloading, file sharing, peer-to-peer file sharing (P2P), voice over internet protocol (VoIP) calls, video over IP calls, or any other type of functionality typically provided by a network. Networks 110 may provide their respective services using any of a variety of protocols for either wired or wireless communication. For example, network 110 a may comprise an 802.16 wireless network (e.g., 802.16j), popularly known as WiMAX, which may include macro base stations (MBSs), such as MBS 120, relay stations (RSs), such as RSs 130, and femto base stations (fBSs), such as fBSs 190.

For simplicity and ease of discussion the remainder of this description may use a simplified nomenclature for the various entities, servers, and networks discussed herein. ‘Home location’ may refer to a place at which a user has home network access to an external network, such as the internet. A home location is not limited to only a user's residence—it may include, for example, a user's office. ‘Home network access’ may refer to any of a variety of techniques and/or technologies used to access one or more external networks, such as the internet, from the user's home location. For example, home network access may comprise a cable modem, a DSL modem, an xDSL modem, etc. ‘Home network’ may refer to a local area network (LAN) configured within a user's home location. The LAN may include both wired and wireless connections. The term ‘internet’ is not intended to be limited to only the Internet but includes any type of network, including public and private networks, which an fBS may use to establish its backhaul connection to a wireless service provider's network. ‘Internet service provider’ (ISP) may refer to an entity that provides a user with his home network access service. ‘Wireless service’ may refer to any of a variety of techniques and technologies (e.g., WiMAX or LTE) used to provide endpoints with wireless connections. ‘Wireless service provider’ (WSP) may refer to the entity that provides the wireless service. ‘Wireless network’ may refer to any devices or components (e.g., base stations) used to provide the wireless service. ‘Mobile wireless network’ may refer to the wireless network minus any user equipment that provides wireless service (e.g., a femto base station). In some embodiments, the mobile wireless network may be the publicly available portion of the wireless network. For example, a femto base station at a user's home location may be part of the wireless network, but may not be a part of the mobile wireless network. As another example, a macro base station outside the user's home location may be part of both the wireless network and the mobile wireless network. While this nomenclature is used for simplicity, it does not represent the entire scope of all possible embodiments. For example, an ISP may also be the WSP. As another example, the ISP may not be directly providing the user with internet access (e.g., the ISP may provide a building with internet access, the building owner may then provide the fBS user with internet access).

In particular embodiments, a user may use their mobile endpoint (e.g., endpoint 140 a) to identify a file to download (e.g., a movie). The file may then either be downloaded locally at mobile endpoint 140 a or remotely via proxy server 195 maintained by the user's wireless service provider. To download the file remotely, the user's endpoint may send a download request to proxy server 195 via the WSP's network. Because the request is communicated through and received by components of the WSP's network, the request and/or endpoint may be trusted by proxy server 195 without requiring separate authentication. Proxy server 195 may then use a wired connection separate from the wireless connections provided by the WSP to download the file. The downloaded file may then be stored at proxy server 195 until the user returns home and is connected to his fBS (e.g., fBS 190 a). Once connected the user may download the file to his endpoint. In some embodiments, once proxy server 195 has downloaded the file, it may transfer the file (for example via fBS 190 a) to a storage device at the user's home. The user may then transfer the file from the storage device to his endpoint.

The embodiment depicted in FIG. 1 includes fBSs 190. fBSs 190 may, in essence, be small base stations purchased (or leased) by the user from his WSP. Once installed the fBS provides a geographically small coverage area that may be used to enhance the signal coverage within the user's home. Depending on the scenario, the user may share this coverage with other, unknown users (e.g., the fBS is a public fBS), or he may limit it to known/authorized users (e.g., the fBS is a private fBS). In some embodiments, fBSs 190 may use the same wireless technology as the surrounding base stations 120. In particular embodiments, fBSs 190 may use the same licensed spectrum (e.g., the spectrum licensed by the user's WSP) as the WSP's other local MBSs 120 and RSs 130.

Part of the installation process for the fBS may include providing it with internet access for its backhaul connection. In the scenario depicted in FIG. 1, fBSs 190 are connected to network access devices 180. Network access devices 180 provide their respective users with home network access. The connection between each respective fBS 190 and network access device 180 may provide fBSs 190 with their backhaul connection to the WSP's network (also referred to as a wireless service network (WSN)) network 110 e. This backhaul connection may be used, among other things, to transfer downloaded files from proxy server 195 to a storage device (e.g., storage device 198 a) or

In the depicted embodiment, proxy server 195 is coupled to network WSN 110 e from which proxy server 195 may connect to remote servers to download files requested by a user. The downloaded files may be stored locally at proxy server 195 or at any other component (e.g., a storage server) accessible by proxy server 195 that is able to store data. Proxy server 195 may receive a user's instructions to download the file from, for example, a particular web server. The instructions may be relayed to proxy server 195 via the WSP's network WSN 110 e. Because the instructions may be sent via the WSP's network WSN 110 e, proxy server 195 may rely on the WSP's authentication of the user and/or instruction. Thus, the endpoint or user may not have to send authentication or identification information to log into proxy server 195. In some embodiments, the instructions may be relayed via the internet.

In particular embodiments, the user of fBS 190 may be the owner of fBS 190 or a user authorized by the owner to use fBS 190. In particular embodiments, those users authorized to use fBS 190, may also be able take advantage of the remote downloading ability of proxy server 195. In some embodiments, proxy server 195 may have its own list of authorized users, distinct from the list of authorized users associated with fBS 190.

Although the example communication system 100 of FIG. 1 includes six different networks, networks 110 a-110 f, the term “network” should be interpreted as generally defining any network or combination of networks capable of transmitting signals, data, and/or messages, including signals, data or messages transmitted through WebPages, e-mail, file transfers, text chat, voice over IP (VoIP), and instant messaging. Depending on the scope, size and/or configuration of the network, any one of networks 110 a-110 f may be implemented as a LAN, WAN, MAN, PSTN, WiMAX network, global distributed network such as the Internet, Intranet, Extranet, or any other form of wireless or wired networking.

Networks 110 may include any number and combination of wired links 160, wireless connections 150, nodes 170 and/or endpoints 140. For purposes of illustration, and only by way of example, network 110 a is a MAN that may be implemented, at least in part, via WiMAX, LTE, any 3G or 4G wireless technology, or any other type of wireless service; network 110 b is a PSTN; network 110 c is a LAN; network 110 d is a WAN, such as the internet; network 110 e is a WSN which may be operated by the WSP responsible for providing network 110 a with wireless service (e.g., WiMAX); and network 110 f is an internet service network (ISN) which may be operated by the ISP responsible for providing its users with home network access, including internet access. Though not depicted in FIG. 1, both WSN network 110 e and ISN network 110 f may include servers, modems, gateways and any other components that may be needed to provide their respective service.

While networks 110 have been depicted as six separate networks, depending on the scenario any two, or more, of the networks may be a single network. For example, the WSP and the ISP may be the same business entity which may maintain the necessary components for both services on the same network thus merging ISN network 110 f and WSN network 110 e into a single network. Furthermore, the interconnections between networks 110 may vary from those depicted in FIG. 1. For example, if a user uses a Digital Subscriber Line (DSL) connection for his internet access, his network access device 180 may connect to PSTN 110 b.

Generally, networks 110 provide for the communication of packets, cells, frames, or other portions of information (generally referred to as packets herein) between endpoints 140 and/or nodes 170 (described below). In particular embodiments, networks 110 a, and 110 c-110 f may be IP networks. IP networks transmit data by placing the data in packets and sending each packet individually to the selected destination, along one or more communication paths. Network 110 b may, for example, be a PSTN that may include switching stations, central offices, mobile telephone switching offices, pager switching offices, remote terminals, and other related telecommunications equipment that are located throughout the world. Network 110 d may be coupled to network 110 b through a gateway. Depending on the embodiment, the gateway may be a part of network 110 b and/or 110 d (e.g., nodes 170 e and/or 170 c may comprise a gateway). The gateway may allow PSTN 110 b to be able to communicate with non-PSTN networks such as any one of networks 110 a or 110 c-110 f.

Any of networks 110 a or 110 c-110 f may be coupled to other IP networks including, but not limited to, the internet. Because IP networks share a common method of transmitting data, signals may be transmitted between devices located on different, but interconnected, IP networks. In addition to being coupled to other IP networks, any of networks 110 a or 110 c-110 f may also be coupled to non-IP networks through the use of interfaces or components such as gateways.

Networks 110 may be connected to each other and with other networks via a plurality of wired links 160, wireless connections 150, and nodes 170. Not only do wired links 160, wireless connections 150, and nodes 170 connect various networks but they also interconnect endpoints 140 with one another and with any other components coupled to or a part of any of networks 110. The interconnection of networks 110 may enable endpoints 140 to communicate data and control signaling between each other as well as allowing any intermediary components or devices to communicate data and control signals. Accordingly, users of endpoints 140 may be able to send and receive data and control signals between and among each network component coupled to one or more of networks 110.

In the depicted embodiment, wireless connections 150 may represent wireless links between two components using, for example, WiMAX. In other embodiments, wireless connections 150 may use other wireless technologies and/or protocols, such as LTE or LTE-A. The extended range of a WiMAX MBS, along with one or more RSs and fBSs, may allow network 110 a to cover the larger geographic area associated with a MAN.

Nodes 170 may include any combination of network components, modems, session border controllers, gatekeepers, ISN gateways, WSN gateways, security gateways, operation administration maintenance and provisioning (OAM&P) servers, network access provider (NAP) servers, base stations, conference bridges, routers, hubs, switches, gateways, endpoints, or any other hardware, software, or embedded logic implementing any number of communication protocols that allow for the exchange of packets in communication system 100. For example, node 170 e may comprise a gateway. As a gateway node 170 e may allow network 110 b, a PSTN network, to be able to transmit and receive communications from other non-PSTN networks, such as network 110 d, an IP network. More specifically, as a gateway, node 170 e may translate communications between the various protocols used by networks 110 b and 110 d.

Network access devices 180 may provide home network access to fBSs 190 through any combination of hardware, software embedded in a computer readable medium, and/or encoded logic incorporated in hardware or otherwise stored (e.g., firmware). In some embodiments, network access device 180 may be supplied by the user's ISP. For example, if the user's ISP is a cable company then the ISP may supply a cable modem as network access device 180. As another example, if the user's ISP is a phone company then the ISP may supply an xDSL modem as network access device 180. As may be apparent, network access device 180 may provide home network access to components other than fBSs 190. For example, the user may connect his personal computer to network access device 180 to access the internet.

Endpoints 140 and/or nodes 170 may provide data or network services to a user through any combination of hardware, software embedded in a computer readable medium, and/or encoded logic incorporated in hardware or otherwise stored (e.g., firmware). For example, endpoints 140 a-140 k may include a cell phone, an IP telephone, a computer, a video monitor, a camera, a personal data assistant or any other hardware, software and/or encoded logic that supports the communication of packets (or frames) using one or more of networks 110. Endpoints 140 may also include unattended or automated systems, gateways, other intermediate components or other devices that can send or receive data and/or signals.

Although FIG. 1 illustrates a particular number and configuration of endpoints, connections, links, and nodes, communication system 100 contemplates any number or configuration of such components for communicating data. In addition, elements of communication system 100 may include components centrally located (local) with respect to one another or distributed throughout communication system 100.

FIG. 2 illustrates a network comprising a more detailed view of an endpoint, and a proxy server, in accordance with a particular embodiment. The depicted embodiment is a simplified scenario comprising networks 250, 260 and 270, proxy server 210, fBS 240, MBS 273, remote server 230, and endpoint 220. In different embodiments network 200 may comprise any number of wired or wireless networks, MBSs, endpoints, RSs, fBSs, and/or any other components that may facilitate or participate in the communication of data and/or signals whether via wired or wireless connections. Network 200 may comprise any of a variety of different wireless technologies, including, but not limited to, orthogonal frequency division multiple access (OFDMA), next generation wireless system such as LTE-A and 802.16m.

Proxy server 210 and endpoint 220 may each include one or more portions of one or more computer systems. In particular embodiments, one or more of these computer systems may perform one or more steps of one or more methods described or illustrated herein. In particular embodiments, one or more computer systems may provide functionality described or illustrated herein. In some embodiments, encoded software running on one or more computer systems may perform one or more steps of one or more methods described or illustrated herein or provide functionality described or illustrated herein.

The depicted components of proxy server 210 and endpoint 220 may comprise any suitable physical form, configuration, number, type and/or layout. As an example, and not by way of limitation, proxy server 210 and/or endpoint 220 may comprise an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (such as, for example, a computer-on-module (COM) or a system-on-module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile telephone, a personal digital assistant (PDA), a server, or a combination of two or more of these. Where appropriate, proxy server 210 and/or endpoint 220 may include one or more computer systems; be unitary or distributed; span multiple locations; span multiple machines; or reside in a cloud, which may include one or more cloud components in one or more networks.

Where appropriate, proxy server 210 and/or endpoint 220 may perform without substantial spatial or temporal limitation one or more steps of one or more methods described or illustrated herein. As an example, and not by way of limitation, proxy server 210 and/or endpoint 220 may perform in real time or in batch mode one or more steps of one or more methods described or illustrated herein. One or more proxy servers and/or endpoints may perform at different times or at different locations one or more steps of one or more methods described or illustrated herein, where appropriate.

In the depicted embodiment, proxy server 210 and endpoint 220 may each include their own respective processors 211 and 221, memory 213 and 223, storage 215 and 225, interfaces 217 and 227, and buses 212 and 222. These components may work together to facilitate in the remote downloading of one or more files. Although a particular network is depicted having a particular number of particular components in a particular arrangement, this disclosure contemplates any suitable network having any suitable number of any suitable components in any suitable arrangement. For simplicity, similar components of proxy server 210 and endpoint 220 will be discussed together wherein the components of endpoint 220 will be identified in parenthesis. However, it is not necessary for both devices to have the same components, or the same type of components. For example, processor 211 may be a general purpose microprocessor and processor 221 may be an application specific integrated circuit (ASIC).

Processor 211 (and/or 221) may be a microprocessor, controller, or any other suitable computing device, resource, or combination of hardware, software and/or encoded logic operable to provide, either alone or in conjunction with other components (e.g., memory 213 or 223, respectively), remote downloading functionality. Such functionality may include providing various features discussed herein. For example, processor 221 may determine when to download a file locally at endpoint 220, and when to have the file downloaded remotely by proxy server 210. Additional examples and functionality provided, at least in part, by processor 211 (and/or 221) will be discussed below.

In particular embodiments, processor 211 (and/or 221) may include hardware for executing instructions, such as those making up a computer program. As an example and not by way of limitation, to execute instructions, processor 211 (and/or 221) may retrieve (or fetch) instructions from an internal register, an internal cache, memory 213 (and/or 223), or storage 215 (and/or 225); decode and execute them; and then write one or more results to an internal register, an internal cache, memory 213 (and/or 223), or storage 215 (and/or 225).

In particular embodiments, processor 211 (and/or 221) may include one or more internal caches for data, instructions, or addresses. This disclosure contemplates processor 211 (and/or 221) including any suitable number of any suitable internal caches, where appropriate. As an example and not by way of limitation, processor 211 (and/or 221) may include one or more instruction caches, one or more data caches, and one or more translation lookaside buffers (TLBs). Instructions in the instruction caches may be copies of instructions in memory 213 (and/or 223) or storage 215 (and/or 225) and the instruction caches may speed up retrieval of those instructions by processor 211 (and/or 221). Data in the data caches may be copies of data in memory 213 (and/or 223) or storage 215 (and/or 225) for instructions executing at processor 211 (and/or 221) to operate on; the results of previous instructions executed at processor 211 (and/or 221) for access by subsequent instructions executing at processor 211 (and/or 221), or for writing to memory 213 (and/or 223), or storage 215 (and/or 225); or other suitable data. The data caches may speed up read or write operations by processor 211 (and/or 221). The TLBs may speed up virtual-address translations for processor 211 (and/or 221). In particular embodiments, processor 211 (and/or 221) may include one or more internal registers for data, instructions, or addresses. Depending on the embodiment, processor 211 (and/or 221) may include any suitable number of any suitable internal registers, where appropriate. Where appropriate, processor 211 (and/or 221) may include one or more arithmetic logic units (ALUs); be a multi-core processor; include one or more processors 211 (and/or 221); or any other suitable processor.

Memory 213 (and/or 223) may be any form of volatile or non-volatile memory including, without limitation, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), flash memory, removable media, or any other suitable local or remote memory component or components. Memory 213 (and/or 223) may store any suitable data or information utilized by proxy server 210 (and/or endpoint 220), including software embedded in a computer readable medium, and/or encoded logic incorporated in hardware or otherwise stored (e.g., firmware). In particular embodiments, memory 213 (and/or 223) may include main memory for storing instructions for processor 211 (and/or 221) to execute or data for processor 211 (and/or 221) to operate on. As an example and not by way of limitation, proxy server 210 (and/or endpoint 220) may load instructions from storage 215 (and/or 225) or another source (such as, for example, another computer system, another base station, or a remote transceiver) to memory 213 (and/or 223). Processor 211 (and/or 221) may then load the instructions from memory 213 (and/or 223) to an internal register or internal cache. To execute the instructions, processor 211 (and/or 221) may retrieve the instructions from the internal register or internal cache and decode them. During or after execution of the instructions, processor 211 (and/or 221) may write one or more results (which may be intermediate or final results) to the internal register or internal cache. Processor 211 (and/or 221) may then write one or more of those results to memory 213 (and/or 223). In particular embodiments, processor 211 (and/or 221) may execute only instructions in one or more internal registers or internal caches or in memory 213 (and/or 223) (as opposed to storage 215 (and/or 225) or elsewhere) and may operate only on data in one or more internal registers or internal caches or in memory 213 (and/or 223) (as opposed to storage 215 (and/or 225) or elsewhere).

Bus 212 (and/or 222) may include any combination of hardware, software embedded in a computer readable medium, and/or encoded logic incorporated in hardware or otherwise stored (e.g., firmware) to couple components of proxy server 210 (and/or endpoint 220) to each other. As an example and not by way of limitation, bus 212 (and/or 222) may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT) interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBAND interconnect, a low-pin-count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCI-X) bus, a serial advanced technology attachment (SATA) bus, a Video Electronics Standards Association local (VLB) bus, or any other suitable bus or a combination of two or more of these. Bus 212 (and/or 222) may include any number, type, and/or configuration of buses 212 (and/or 222), where appropriate. In particular embodiments, one or more buses 212 (which may each include an address bus and a data bus) may couple processor 211 (and/or 221) to memory 213 (and/or 223). Bus 212 (and/or 222) may include one or more memory buses. In particular embodiments, one or more memory management units (MMUs) may reside between processor 211 (and/or 221) and memory 213 (and/or 223) and facilitate accesses to memory 213 (and/or 223) requested by processor 211 (and/or 221). In particular embodiments, memory 213 (and/or 223) may include random access memory (RAM). This RAM may be volatile memory, where appropriate. Where appropriate, this RAM may be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, where appropriate, this RAM may be single-ported or multi-ported RAM, or any other suitable type of RAM or memory. Memory 213 (and/or 223) may include one or more memories 213 (and/or 223), where appropriate.

In particular embodiments, storage 215 (and/or 225) may include mass storage for data or instructions. As an example and not by way of limitation, storage 215 (and/or 225) may include an HDD, a floppy disk drive, flash memory, an optical disc, a magneto-optical disc, magnetic tape, or a Universal Serial Bus (USB) drive or a combination of two or more of these. Storage 215 (and/or 225) may include removable or non-removable (or fixed) media, where appropriate. Storage 215 (and/or 225) may be internal or external to proxy server 210 (and/or endpoint 220), where appropriate. In particular embodiments, storage 215 (and/or 225) may be non-volatile, solid-state memory. In particular embodiments, storage 215 (and/or 225) may include read-only memory (ROM). Where appropriate, this ROM may be mask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM), or flash memory or a combination of two or more of these. Storage 215 (and/or 225) may take any suitable physical form and may comprise any suitable number or type of storage. Storage 215 (and/or 225) may include one or more storage control units facilitating communication between processor 211 (and/or 221) and storage 215 (and/or 225), where appropriate.

In particular embodiments, interface 217 (and/or 227) may include hardware, encoded software, or both providing one or more interfaces for communication (such as, for example, packet-based communication) between proxy server 210, endpoint 220, fBS 240, any networks, any network devices, and/or any other computer systems. As an example and not by way of limitation, communication interface 217 (and/or 227) may include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wire-based network and/or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network.

In some embodiments, interface 217 (and/or 227) may comprise one or more radios coupled to one or more antennas. In such an embodiment, interface 217 (and/or 227) may receive digital data that is to be sent out to wireless devices, such as endpoints, via a wireless connection. The radio may convert the digital data into a radio signal having the appropriate center frequency, bandwidth parameters, and transmission power. Similarly, the radios may convert radio signals received via the antenna into digital data to be processed by, for example, processor 211 (and/or 221).

Depending on the embodiment, interface 217 (and/or 227) may be any type of interface suitable for any type of network. As an example and not by way of limitation, interface 217 (and/or 227) may be used to communicate with an ad-hoc network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), or one or more portions of the internet or a combination of two or more of these. One or more portions of one or more of these networks may be wired or wireless. As an example, proxy server 210 (and/or endpoint 220) may communicate with a wireless PAN (WPAN) (such as, for example, a BLUETOOTH WPAN), a Wi-Fi network, a WiMAX network, an LTE network, an LTE-A network, a cellular telephone network (such as, for example, a Global System for Mobile Communications (GSM) network), or any other suitable wireless network or a combination of two or more of these. Proxy server 210 (and/or endpoint 220) may include any suitable interface 217 (and/or 227) for any one or more of these networks, where appropriate.

In some embodiments, interface 217 (and/or 227) may include one or more interfaces for one or more I/O devices. One or more of these I/O devices may enable communication between a person and proxy server 210 (and/or endpoint 220). As an example and not by way of limitation, an I/O device may include a keyboard, keypad, microphone, monitor, mouse, printer, scanner, speaker, still camera, stylus, tablet, touch screen, trackball, video camera, another suitable I/O device or a combination of two or more of these. An I/O device may include one or more sensors. Particular embodiments may include any suitable type and/or number of I/O devices and any suitable type and/or number of interfaces 117 (and/or 227) for them. Where appropriate, interface 117 (and/or 227) may include one or more devices or encoded software drivers enabling processor 211 (and/or 221) to drive one or more of these I/O devices. Interface 117 (and/or 227) may include one or more interfaces 117 (and/or 227), where appropriate.

Herein, reference to a computer-readable storage medium encompasses one or more tangible computer-readable storage media possessing structures. As an example and not by way of limitation, a computer-readable storage medium may include a semiconductor-based or other integrated circuit (IC) (such, as for example, a field-programmable gate array (FPGA) or an application-specific IC (ASIC)), a hard disk, an HDD, a hybrid hard drive (HHD), an optical disc, an optical disc drive (ODD), a magneto-optical disc, a magneto-optical drive, a floppy disk, a floppy disk drive (FDD), magnetic tape, a holographic storage medium, a solid-state drive (SSD), a RAM-drive, a SECURE DIGITAL card, a SECURE DIGITAL drive, a flash memory card, a flash memory drive, or any other suitable computer-readable storage medium or a combination of two or more of these, where appropriate. Herein, reference to a computer-readable storage medium excludes any medium that is not eligible for patent protection under 35 U.S.C. §101. Herein, reference to a computer-readable storage medium excludes transitory forms of signal transmission (such as a propagating electrical or electromagnetic signal per se) to the extent that they are not eligible for patent protection under 35 U.S.C. §101.

Particular embodiments may include one or more non-transitory computer-readable storage-media implementing any suitable storage. In particular embodiments, a computer-readable storage medium implements one or more portions of processor 211 (and/or 221) (such as, for example, one or more internal registers or caches), one or more portions of memory 213 (and/or 223), one or more portions of storage 215 (and/or 225), or a combination of these, where appropriate. In particular embodiments, a computer-readable storage medium implements RAM or ROM. In particular embodiments, a computer-readable storage medium implements volatile or persistent memory. In particular embodiments, one or more computer-readable storage media embody encoded software.

Herein, reference to encoded software may encompass one or more applications, bytecode, one or more computer programs, one or more executables, one or more instructions, logic, machine code, one or more scripts, or source code, and vice versa, where appropriate, that have been stored or encoded in a computer-readable storage medium. In particular embodiments, encoded software includes one or more application programming interfaces (APIs) stored or encoded in a computer-readable storage medium. Particular embodiments may use any suitable encoded software written or otherwise expressed in any suitable programming language or combination of programming languages stored or encoded in any suitable type or number of computer-readable storage media. In particular embodiments, encoded software may be expressed as source code or object code. In particular embodiments, encoded software is expressed in a higher-level programming language, such as, for example, C, Perl, or a suitable extension thereof. In particular embodiments, encoded software is expressed in a lower-level programming language, such as assembly language (or machine code). In particular embodiments, encoded software is expressed in JAVA. In particular embodiments, encoded software is expressed in Hyper Text Markup Language (HTML), Extensible Markup Language (XML), or other suitable markup language.

Networks 250, 260 and 270 may comprise any number of separate but interconnected networks operated by one or more different providers. For example, network 260 may comprise the ISP's network and network 270 may comprise the WSP's network. A user may use their ISP's network for their home network access at their home location. In providing the user with home network access, the ISP's network may include modems, servers, and gateways (e.g., an ISP gateway). A user may use their WSP's wireless network to supply the user with wireless service. The wireless network may support technologies and/or protocols such as a WiMAX, LTE-A, or LTE. In providing the wireless service, the WSP's network may utilize servers and gateways. The user may also use the WSP's network to provide remote downloading functionality. One or more components of network 270 may provide authentication and/or authorization for endpoint 220. Proxy server 210 may take advantage of this authentication by not requiring the user to send separate or additional authentication information in order to take advantage of the remote downloading capability. Networks 250, 260, and/or 270 may comprise any number of additional networks including, but not limited to, the internet, a LAN, WAN, MAN, PSTN or some combination of the above.

fBS 240 may, in essence, be a small base station providing a limited coverage area for a home or office. Depending on the embodiment and configuration of fBS 240 it may be public or private. fBS 240 may rely on the user's home network access (e.g., via a modem, not depicted, provided by the user's ISP) to provide the backhaul connection to the WSP's network. In certain embodiments, fBS 240 may comprise or be coupled to a storage device.

Server 230 may comprise any combination of hardware and/or encoded logic or software, including firmware, needed to host files for downloading. Server 230 may use any one or more of a variety of access control methods to limit user access to available files. The method used may impact the type of request and set of credentials needed to access content hosted by server 230. For example, one common security method used for access control is Hypertext Transfer Protocol Secure (HTTPS). For proxy server 210 to be able to download a file from server 230 using HTTPS, storage 215 of proxy server 210 may need to store information such as a session ID, a random number, a cipher suite, server 230's public key, and any other information needed to successfully gain access to server 230's content.

The following examples may help to illustrate how these components inter-work with one another to provide the functionality of particular embodiments. Assume that while a user is traveling away from his home location, the user is using a web browser running on their endpoint to search for movies. Once the user identifies and selects a movie, the movie may be downloaded and saved at the WSP's proxy server 210. In some embodiments, endpoint 220 may receive a message indicating that proxy server 210 has finished, is about to finish, or has started downloading the movie. Depending on the embodiment or scenario, when the user returns to his home location, he will be able to retrieve it from proxy server 210 (e.g., via fBS 240) or a storage device maintained in the user's home. If the movie is stored at proxy server 210, the user may download the movie to his endpoint, or to a storage device, using fBS 240. If the movie has already been transferred to a storage device, the user may access and/or transfer the file using any of a variety of techniques (e.g., a wired or wireless link such as Ethernet, USB, or Wi-Fi). While this example is focused on a movie, remote downloading may be used for any file to be downloaded, including, for example, system software upgrades for endpoint 220. In some embodiments, the file being downloaded to proxy server 210 may comprise files hosted by the WSP that the user is able to select using the user's subscription account (e.g., transactions at the WSP's media store may be carried out within the WSP's network thus providing a secure shopping experience).

Downloading the file to proxy server 210 from server 230 may be achieved through a variety of techniques. For example, in some embodiments, storage 215 may store a proxy program that processor 211 may execute to allow proxy server 210 to accept connections and/or remote download requests from endpoint 220. In certain embodiments, proxy server 210 may not need login information from endpoint 220 because proxy server 210 may rely on the user authentication provided by the WSP. The proxy program may work in concert with a plug-in that is maintained in storage 225 of endpoint 220. Processor 221 may run the plug-in to intercept, reformat and redirect at least some download requests (e.g., requests for files greater than a threshold number of bytes) made from the user's browser or any other program (e.g., an electronic bookstore, an application store, etc.) running on endpoint 220. The intercepted requests may be directed through the WSP's network to the proxy program running on proxy server 210.

In particular embodiments, a user may decide whether or not to send a request to proxy server 210. For example, when processor 221 recognizes that a user is attempting to download a file, endpoint 220 may generate a prompt asking the user if the file should be downloaded locally or at proxy server 210. Depending on the embodiment, the prompt may be generated automatically (e.g., anytime a user attempts to download any file, any file over a certain size, or a particular file type) or based on user input (e.g., a user presses a button on endpoint 220 to call up the prompt). The prompt may be a menu entry, a pop-up window, a new page, or any other type of prompt. For example, in some embodiments, a user may press a button that calls for a popup menu with an option to “save link remotely” in addition to, or instead of an option to “save link as.” In some embodiments, processor 221 may generate a new hyper-link within the webpage, as displayed by endpoint 220's browser. For example, a webpage provided by server 230 may comprise a hyperlink to download a movie. Processor 221 may recognize that the hyperlink is to download a movie and may, when rendering the webpage, add a second hyperlink proximate to the original hyperlink. The second hyperlink may be distinct from the original hyperlink so as to alert the user that selecting the second hyperlink will remotely download the movie and selecting the original hyperlink will download the movie locally, for example to storage 227 of endpoint 220.

Once it has been determined that a file is to be downloaded by proxy server 210, endpoint 220 may, instead of sending a request to server 230, send a request to the proxy program run by proxy server 210. The request may include the user's security credentials and/or any log-in information needed to access and/or download the requested file from server 230. In some embodiments, the request may be sent to proxy server 210 without the user first logging into proxy server 210. For example, proxy server 210 may rely on the user authentication provided by the WSP and/or the components of the WSP's network. In particular embodiments, storage 215 of proxy server 210 may maintain at least some of the user's credentials for server 230. Thus, the request from endpoint 220 may not contain all the credentials needed to download files from server 230. In some embodiments, the request may comprise a format similar to the following plain English syntax: “Please download the file xxx at URL y.y.y.” In some embodiments in which a storage device has been configured within the user's home to receive files downloaded by proxy server 210, the user may specify a location to which a file is to be saved.

When proxy server 210 receives a request from endpoint 220 to download a file from server 230, interface 217 may send a request (e.g., an HTTP request) to server 230 requesting the file for download. The request may include information provided by endpoint 220 and/or information stored by storage 215. After server 230 accepts the request from proxy server 210, proxy server 210 may start to download the file on behalf of endpoint 220. In some embodiments, once the download is complete, interface 217 of proxy server 210 may send a message to endpoint 220 indicating that the file has been successfully downloaded.

When the user returns home, the user may use endpoint 220 to retrieve the file downloaded by proxy server 210. For example, in some embodiments, if the file is stored at proxy server 210, endpoint 220 may retrieve the file by downloading it via fBS 240. This scenario may reduce the load placed on the WSP's mobile wireless network. As another example, in some embodiments, the file may be stored on a storage device that is a part of, or coupled to, fBS 240. This file may be transferred to the storage device before the user returns home. Then, once the user returns home, endpoint 220 may retrieve the file from the storage device using any suitable data transfer means including via a wireline or wireless link, such as Ethernet, USB, Bluetooth, Wi-Fi, WiMAX, or LTE.

Depending on the embodiment, the file may be retrieved by endpoint 220 (either from proxy server 210 via fBS 240 or from a storage device at the user's home) as soon as endpoint 220 has a connection to fBS 240, after endpoint 220 and/or proxy server 210 receive a request to retrieve the file from proxy server 210 to endpoint 220, at a predetermined or scheduled time, at any other convenient or suitable time, or after any convenient or suitable triggering event.

In some scenarios and/or embodiments, proxy server 210 may need user credentials in order to access or download a file from server 230. These credentials may be sent by endpoint 220 over the WSP's networks without additional encryption protection. In some embodiments, the credentials may be provided by endpoint 220 over a secure connection. For example, in some embodiments, an Internet Protocol Security (IPSec) connection may be established between endpoint 220 and proxy server 210. When a user requests that proxy server 210 download a file, endpoint 220 may use the secure connection to send the user's credentials to proxy server 210. In some embodiments, the request may comprise a format similar to the following plain English syntax: “Please use username uuu and password ppp to download file xxx at URL y.y.y.”

In some cases, a certificate may be needed during the first connection to server 230 to authenticate the identity of the user. In such cases, it may be that proxy server 210 (or a proxy program running thereon) sends its own certificate along with the user's username and/or password to server 230. In particular embodiments, processor 211 of proxy server 210 may be able to parse the response messages from server 230 so as to reply with the correct responses. This may allow the proxy program to behave like a client browser, thus server 230 may be unaware that it is communicating with a proxy program.

In certain embodiments, if server 230 requires information that proxy server 210 and/or the proxy program are unable to provide (e.g., a web site that asks additional security questions if it receives an HTTP request from an unfamiliar IP address or without a proper cookie), interface 217 may transmit a message to endpoint 220. The message may be transmitted via the secure connection. Depending on the nature or type of information that is needed, the user may send the additional information to proxy server 210 from endpoint 220 or the user may wait until he is at his home location and then connect to server 230 from his home computer to manually enter the information needed by server 230.

In particular embodiments, proxy server 210 may be configured so that the proxy program run by proxy server 210 is able to use the same authentication credentials (e.g., security keys, password, cookies, digital signatures, etc.) as endpoint 220. In certain embodiments, the authentication credentials may be synchronized between endpoint 220 and proxy server 210 when endpoint 220 is connected to, for example, fBS 240 in a secure way (e.g., through the user's home network). In some scenarios, the user may be able to set a policy on how the credentials are synchronized, maintained and/or deleted.

In some embodiments fBS 240 and/or proxy server 210 may be accessible through the WSP's network. For example, the WSP may provide a relay feature to allow endpoint 220 to send/receive messages to/from fBS 240 and/or proxy server 210. In particular embodiments, a control-node (e.g., a Mobility Management Entity (MME)) associated with the WSP's network may register the address of fBS 240 and/or proxy server 210.

In some embodiments, file retrieval requests may be sent, for example, through the WSP's network (as opposed to through the internet) using the relay feature and the registered address of fBS 240 and/or proxy server 210. Proxy server 210 may then transfer the requested file via the users home network access. Because the request is transmitted through the WSP's network, it may be more secure than having the request sent via the internet. While the request is transmitted primarily through the WSP's network, the majority of the traffic (e.g., the downloaded file) does not go through the WSP's mobile wireless network nor use resources of the mobile wireless network.

Thus far several different embodiments and features have been presented. Particular embodiments may combine one or more of these features depending on operational needs and/or component limitations. This may allow for great adaptability of network 200 to the needs of various organizations and users. Some embodiments may include additional or different features. In particular embodiments, the functionality of proxy server 210 may be a part of one or more other components of the WSP's network. Moreover, the ability to remotely download files may be implemented in any type of wireless technology.

FIG. 3 illustrates a method for facilitating remote downloading, in accordance with a particular embodiment. It may be assumed, for purposes of this method, that a user has a fBS that is able to access external networks, including the internet and/or the WSP's network, via the user's home network access. The user's home network access may be provided via a modem provided by an ISP.

The method begins at step 305 with the reception of a request to download a file from a remote server. The download request may be received from a program (or a user interface of a program) running on an endpoint. In some instances the endpoint may be using a wireless service provider's wireless network. For example, a user may be browsing a website comprising movie downloads. When a user identifies a movie to be downloaded, the user may request that the movie be downloaded from a remote server hosting the movie.

At step 310 the endpoint may determine that the download time needed to download the requested file is greater than a threshold amount of time. This may be the case for large files such as movies or music. In some instances, the endpoint may receive an HTTP OK reply from the server before the endpoint determines that the download time exceeds a threshold amount of time. The time to download the file may be based on a data rate at the endpoint and a size associated with the file. Depending on the embodiment and/or scenario, the threshold amount of time may be set by the wireless service provider (e.g., to reduce network traffic), by the user (e.g., to limit data consumption), or any other entity that may wish to limit or control the amount of data that is downloaded over a wireless network.

At step 315 a remote download request is generated. The remote download request may request that a file be downloaded by a component or device other than the requesting endpoint. For example, a proxy server provided by the wireless service provider may remotely download files when requested. The request may be generated from a program running on the endpoint (e.g., a browser), a third party (e.g., a podcast subscription) or the WSP (e.g., a firmware update for the endpoint).

In the depicted scenario, the remote download request is generated because it was determined that it would take more than a threshold amount of time to download the requested file. In other embodiments, the endpoint may automatically generate the request any time a user selects a large file (e.g., a file greater than a threshold number of bits), selects a file from a particular remote server, selects a file during a certain time of day, the available bandwidth or data rate is below a threshold level, the endpoint is roaming, etc. In some embodiments, the request may be generated based on an explicit indication received from a user. In particular embodiments or scenarios, the request may be generated by a component or device within the WSP's network. For example, in issuing a software update for the endpoint, a component of the WSP's may generate the remote download request to have the software update downloaded. In some embodiments or scenarios, the request may be generated by a third-party component. For example, the user may have a subscription to one or more online magazines, newspapers, podcasts, or other content. As another example, the user may use a proxy server as a social networking port for non-urgent updates. A download request may be generated whenever new content is available for either a subscription or from a social networking port. The above are just a few examples of instances where it may be suitable to have a file downloaded on behalf of a user, and then transfer the file to the user's endpoint at a later time.

At steps 320 and 325 the endpoint transmits the remote download request and it is received by a proxy server configured and operated by a wireless service provider. The remote download request may include at least an address associated with a server and/or file to be downloaded by the proxy server. The request may be communicated over the WSP's network (including wireless and wired links). This may provide a heightened degree of security and authenticity compared to requests that may be transmitted over other networks, such as the internet. This may allow the proxy server to take advantage of the user authentication performed by the WSP and/or the WSP's network. Depending on the scenario, the request may include information such as the URL for the server hosting the file, login information for the server and/or file, timing of when to download the file and/or when to transfer the file to the user's endpoint or home location, location information on where the file is to be stored, or any other information that may be suitable for determining parameters of the remote downloading of the file. Sending the remote download request may result in a relatively small amount of data being sent over the WSP's mobile wireless network (as compared to the endpoint downloading the file). In addition, because the endpoint's involvement in the downloading of the file from the remote server essentially ends with the sending of the request, the endpoint need not stay connected to the wireless network while the file is downloaded by the proxy server.

At step 330 the proxy server downloads the file from the remote server. Certain remote servers may require login information or other security credentials to download a file. The security credentials required by the remote server may be sent to the proxy server from the endpoint along with the request to remotely download the file from the remote server. In some instances, the security credentials may already be stored at the proxy server (e.g., the proxy server may have stored the security credentials from a previous download from the remote server). The proxy server may download the file to a storage device coupled to the proxy server. In some embodiments, once the proxy server has downloaded the file, it may be transferred to a storage device, such as a storage device within the user's home. In certain embodiments, the proxy server may wait for a request or instruction from the user to transfer the file to the user's endpoint.

At step 335 the proxy server sends a message to the endpoint. The message may be sent after any of a variety of events. For example, the message may be sent after the proxy server has finished downloading the file, when the proxy server begins downloading the file, when the proxy server has downloaded a certain percentage of the file, or at any other suitable time. In some embodiments, the message may alert the user that the proxy server has finished, is about to finish, or has begun downloading the file. This may give the user an idea of when the file may be ready for retrieval. The message may be sent in any of a variety of ways, including, but not limited to, email, text message, voice mail, instant message, an audible tone, a pop-up window, an alert window, an icon, an icon overlay, or any other way which may alert a user as to the status of a remote download.

At step 340 the file is transferred to the storage device. In certain embodiments, the storage device may be coupled to the user's fBS. In some embodiments, the entire file may be transferred. For example, once the proxy server has finished downloading the file (or has downloaded a certain percentage of the file) from the remote server, it may transfer the file (or begin to transfer the file) to the storage device. In some embodiments, the storage device may operate as a buffer. For example, when a user requests to download the file to his endpoint, the proxy server may begin transferring the file to the storage device. Once a certain percentage of the file has been transferred to the storage device, the user may begin to download the file from the storage device to his endpoint. In transferring the file to the storage device, the proxy server may use the user's home network access. This may reduce the traffic demands placed on the mobile wireless network. In some embodiments, the proxy server may wait until a scheduled time of day before it downloads the file from the remote server and/or transfers the file to the storage device.

At step 345 the endpoint is detected. In some embodiments, detecting the endpoint may comprise the fBS establishing a connection with the endpoint. The fBS may relay this to the proxy server so that the proxy server is able to detect the presence of the endpoint. The connection may be wireless (e.g., WiFi, LTE, or WiMAX) or wired (e.g., USB). In some embodiments, the endpoint's presence may not be detected until the endpoint explicitly signals to the fBS and/or proxy server that it is ready to download the file. For example, the user may select an option or press a button on the endpoint to request the file be downloaded to his endpoint. In some embodiments the file may be downloaded whenever the user syncs his endpoint.

At step 350 the file is transferred from the proxy server to the endpoint. The upload may be facilitated by the user's fBS. In some instances the transfer may comprise requesting that the file be transferred from the proxy server to the endpoint via the fBS. For example, the file may be transferred to the endpoint using a wireless connection with the fBs (e.g., via the same wireless interface, such as an LTE or WiMAX interface, that the endpoint uses to communicate within the WSP's wireless network). As another example, the file may be transferred to the endpoint over the user's home network (e.g., via a WiFi connection). In some instances the transfer may comprise requesting the file be transferred to the endpoint from a storage device. In some embodiments, the file may be transferred to a storage device in the user's home via the user's fBS. The transfer may be before the user returns home, then when the user is home the user is able to retrieve the file from the storage device. In some instances the file may be automatically transferred to the endpoint when the endpoint is within range (e.g., within the coverage area) of the user's fBS. In some instances the transfer may be based on the time of day, the day of the week, the date, or any other scheduling indicator that may be used to schedule when files are transferred.

Although particular embodiments have been described in detail, it should be understood that various other changes, substitutions, and alterations may be made hereto without departing from the spirit and scope of particular embodiments. For example, while the embodiment depicted in FIG. 3 includes a certain number of steps, depicted in a certain order, it is to be understood that other embodiments may have more, fewer or different steps, and the steps may be rearranged. For example, in some embodiments the file being retrieved from the proxy server may be a software update for the endpoints. The software update may be made available to the endpoint without the endpoint first requesting the software update. That is, the request may originate from the WSP. As another example, in some embodiments the file may be transferred from the proxy server to the endpoint via the fBS, without being transferred to a storage device.

As another example, although an embodiment has been described with reference to a number of elements included within communication system 100 such as endpoints, fBSs, proxy servers, and MBS, these elements may be combined, rearranged or positioned in order to accommodate particular routing architectures or needs. In addition, any of these elements may be provided as separate external components to communication system 100 or each other where appropriate. Particular embodiments contemplate great flexibility in the arrangement of these elements as well as their internal components.

Numerous other changes, substitutions, variations, alterations and modifications may be ascertained by those skilled in the art and it is intended that the present invention encompass all such changes, substitutions, variations, alterations and modifications as falling within the spirit and scope of the appended claims. 

What is claimed:
 1. A method of facilitating remote downloading, comprising: receiving, at a proxy server located in a wireless service provider network, a remote download request relayed from an endpoint to the proxy server via at least one component of the wireless service provider network, the remote download request comprising an address associated with at least one file hosted by a remote server and security credentials associated with the remote server; determining whether a download time to download the at least one file is greater than a threshold time; upon determining that the download time is greater than the threshold time, downloading the at least one file from the remote server to the proxy server; and upon detecting a presence of the endpoint at a femto base station with a backhaul connection to the wireless service provider network, transferring the at least one file from the proxy server to the endpoint via the femto base station.
 2. The method of claim 1, further comprising, upon completing the downloading of the at least one file, sending a message to the endpoint indicating that the proxy server has completed downloading the at least one file.
 3. The method of claim 1, wherein: the remote download request is received from the endpoint while the endpoint is away from a home location and using a wireless connection provided by a wireless service provider; and upon completing the download of the at least one file, transferring, via the femto base station, the at least one file to a storage device associated with the femto base station, the at least one file transferred to the endpoint upon the femto base station detecting the presence of the endpoint.
 4. A method of facilitating remote downloading, comprising: receiving at an endpoint a request to download at least one file from a remote server; generating a remote download request comprising an address associated with the at least one file and security credentials associated with the at least one file; determining whether a download time to download the at least one file is greater than a threshold time; upon determining that the download time is greater than the threshold time, transmitting the remote download request to a proxy server located in a wireless service provider network, the remote download request transmitted via at least one component of the wireless service provider network; and downloading the at least one file from the proxy server via a femto base station with a backhaul connection to the wireless service provider network.
 5. The method of claim 4, further comprising determining that a time to download the at least one file exceeds a first threshold.
 6. The method of claim 4, wherein downloading the at least one file comprises downloading the at least one file from the proxy server at a scheduled time.
 7. A system for facilitating remote downloading, the system comprising a processor communicably coupled to an interface: the interface configured to: receive, at a proxy server located in a wireless service provider network, a remote download request relayed from an endpoint to the proxy server via at least one component of the wireless service provider network, the remote download request comprising an address associated with at least one file hosted by a remote server and security credentials associated with the remote server; determine whether a download time to download the at least one file is greater than a threshold time; upon determining that the download time is greater than the threshold time, download the at least one file from the remote server to the proxy server; the processor configured to: detect a presence of the endpoint at a femto base station with a backhaul connection to the wireless service provider network, wherein upon detecting the presence of the endpoint, the interface is further configured to transfer the at least one file from the proxy server to the endpoint via the femto base station.
 8. The system of claim 7, wherein, upon completing the downloading of the at least one file, the interface is further configured to send a message to the endpoint indicating that the proxy server has completed downloading the at least one file.
 9. The system of claim 7, wherein: the remote download request is received from the endpoint while the endpoint is away from a home location and using a wireless connection provided by a wireless service provider; and the interface, upon completing the download of the at least one file, is further configured to transfer, via the femto base station, the at least one file to a storage device associated with the femto base station, the at least one file transferred to the endpoint upon the femto base station detecting the presence of the endpoint.
 10. A system for facilitating remote downloading, the system comprising a processor communicably coupled to an interface: the interface configured to receive at an endpoint a request to download at least one file from a remote server; and the processor configured to generate a remote download request comprising an address associated with the at least one file and security credentials associated with the at least one file; the interface further configured to: determine whether a download time to download the at least one file is greater than a threshold time; upon determining that the download time is greater than the threshold time, transmit the remote download request to a proxy server located in a wireless service provider network, the remote download request transmitted via at least one component of the wireless service provider network; and download the at least one file from the proxy server via a femto base station with a backhaul connection to the wireless service provider network.
 11. The system of claim 10, wherein the processor is further configured to determine that a time to download the at least one file exceeds a first threshold.
 12. The system of claim 10, wherein the interface configured to download the at least one file is further configured to download the at least one file from the proxy server at a scheduled time.
 13. One or more non-transitory computer-readable storage media embodying software that when executed by a processor is operable to: receive, at a proxy server located in a wireless service provider network, a remote download request relayed from an endpoint to the proxy server via at least one component of a wireless service provider's network, the remote download request comprising an address associated with at least one file hosted by a remote server and security credentials associated with the remote server; determine whether a download time to download the at least one file is greater than a threshold time; upon determining that the download time is greater than the threshold time, download the at least one file from the remote server to the proxy server; and upon detecting a presence of the endpoint at a femto base station with a backhaul connection to the wireless service provider network, transfer the at least one file from the proxy server to the endpoint via the femto base station.
 14. The media of claim 13, wherein the software, when executed by the processor, is further operable to, upon completing the downloading of the at least one file, send a message to the endpoint indicating that the proxy server has completed downloading the at least one file.
 15. The media of claim 13, wherein: the remote download request is received from the endpoint while the endpoint is away from a home location and using a wireless connection provided by a wireless service provider; and the software, when executed by the processor, is further operable to, upon completing the download of the at least one file, transfer, via the femto base station, the at least one file to a storage device associated with the femto base station, the at least one file transferred to the endpoint upon the femto base station detecting the presence of the endpoint.
 16. One or more non-transitory computer-readable storage media embodying software that when executed by a processor is operable to: receive at an endpoint a request to download at least one file from a remote server; generate a remote download request comprising an address associated with the at least one file and security credentials associated with the at least one file; determine whether a download time to download the at least one file is greater than a threshold time; upon determining that the download time is greater than the threshold time, transmit the remote download request to a proxy server located in a wireless service provider network, the remote download request transmitted via at least one component of the wireless service provider network; and download the at least one file from the proxy server via a femto base station with a backhaul connection to the wireless service provider network.
 17. The media of claim 16, wherein software, when executed by the processor, is further operable to determine that a time to download the at least one file exceeds a first threshold.
 18. The media of claim 16, wherein the software, when executed by the processor, is further operable to download the at least one file from the proxy server at a scheduled time. 